package File;

import java.io.File;

/**
 * @Description // 递归遍历、删除文件
 * @Author zzj
 * @Date 2020/7/20 0:33
 */
public class FileDemo05 {
    public static void main(String[] args) {
        String path = "D:\\file";
        File file = new File(path);
        scannFiles(file);
        deleteFiles(file);
    }

    // 递归遍历文件 查看一个文件夹及其子文件夹的所有 文件(不含文件夹)
    static void scannFiles(File file) {
        // 获取当前目录下file对象数组
        File[] files = file.listFiles();
        for (File f : files) {
            // 是文件就打印
            if (f.isFile())
                System.out.println(f.getAbsolutePath());
                // 不是就递归调用
            else
                scannFiles(f);
        }
    }

  /*  D:\file\A\新建文件夹\f.txt
    D:\file\a.txt
    D:\file\B\C\D\e.txt
    D:\file\B\C\d.txt
    D:\file\B\c.txt*/

    // 递归删除当前文件夹和文件夹中的所有内容
    static void deleteFiles(File file) {
        // 判断是否为文件夹
        if (file.isDirectory()) {
            File[] listFiles = file.listFiles();
            // 执行操作
            for (File f : listFiles) {
                deleteFiles(f);
            }
        }
        file.delete();
        System.out.println("删除了：" + file.getAbsolutePath());
    }

/*    删除了：D:\file\A\新建文件夹\f.txt
    删除了：D:\file\A\新建文件夹
    删除了：D:\file\A
    删除了：D:\file\a.txt
    删除了：D:\file\B\C\D\e.txt
    删除了：D:\file\B\C\D
    删除了：D:\file\B\C\d.txt
    删除了：D:\file\B\C
    删除了：D:\file\B\c.txt
    删除了：D:\file\B
    删除了：D:\file*/

}
